package inteligencia_mapa;

import roles.Personaje;
import main.Programa;

import inteligencia_personaje.MovimientosPersonaje;


public class Gravedad {
	
	protected Personaje miPJ;
	protected MovimientoMapa movMapa;
	protected Programa elPrograma;
	protected int FUERZA_GRAVEDAD = 4;
	
	public Gravedad(Programa p, MovimientoMapa mM, Personaje pj){
		miPJ = pj;
		elPrograma = p;
		movMapa = mM;
	}
	
	public boolean puedo_bajar(){
		MovimientosPersonaje movPJ = miPJ.obtenerMovPJ();
		return movPJ.puedo_ir_abajo();
	}
	
	public void tirar_para_abajo(int desfasaje){
		MovimientosPersonaje movMario = miPJ.obtenerMovPJ();
		if(!movMario.puedo_ir_derecha() || !movMario.puedo_ir_izquierda()){
			miPJ.establecerCoordenada(miPJ.obtenerCoordenada().obtenerX(),miPJ.obtenerCoordenada().obtenerY()+FUERZA_GRAVEDAD);
			elPrograma.establecerActualX(elPrograma.obtenerActualX());
			movMapa.refreshMapa(elPrograma.obtenerActualX());
		}else{
			miPJ.establecerCoordenada(miPJ.obtenerCoordenada().obtenerX()+desfasaje,miPJ.obtenerCoordenada().obtenerY()+FUERZA_GRAVEDAD);
			elPrograma.establecerActualX(elPrograma.obtenerActualX()+desfasaje);
			movMapa.refreshMapa(elPrograma.obtenerActualX());
		}
	}
}
	
